Method and device for printing variable copies of a plurality of pages in a document

ABSTRACT

Disclosed herein is a method and a printer driver unit for printing variable copies of a plurality of pages in a document. In an embodiment, a user input comprising a number of copies of the plurality of pages to be printed is received from a user. Further, the user input is parsed to determine the plurality of pages to be printed and the number of copies that each of the plurality of pages to be printed. Thereafter, the content of each of the plurality of pages is retrieved from a temporary file or a memory associated with the printer driver unit and printed with the help of a printer device. Accordingly, the present disclosure allows users to print variable copies of plurality of pages on a single print action, and thereby enhances speed of printing and ensures optimal usage of resources.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based upon and claims the benefit of priority fromIndian Patent Application No. 2021-41027794, filed Jun. 21, 2021, theentire contents of which are incorporated herein by reference.

TECHNICAL FIELD

The present subject matter is, in general, related to Multi-FunctionPrinters (MFPs), but not exclusively, to a method and device forprinting variable copies of a plurality of pages in a document.

BACKGROUND

A printer is an output device that accepts text and graphic informationfrom a computer and transfers this information to a physical paper. Ingeneral, the printer is associated with a printing application thatallows the printer to receive the information to be printed from thecomputer. While printing the information using any printing application,a User Interface (UI) associated with the printer allows users to inputor select various print options like printer selection, page selection,page orientation etc.

Further, when the user has to print multiple copies of multiple pagesfrom a document, the print UI provides an option to select pages or arange of pages and the number of copies of the selected pages. However,in the existing print mechanisms, the number of copies entered by theuser will be applied for all the pages selected by the user. Forexample, if the user selects the pages 1-4, 6, 8 and enters the numberof copies required as ‘3’, then 3 copies of all the pages 1, 2, 3, 4, 6,and 8 will be printed. In other words, the existing print mechanisms donot provide an option to print different number of copies of differentset of pages in a single print action. For example, the existing printmechanisms do not provide an option to print 3 copies of pages 1-4, 2copies of page 6, and 5 copies of page 8. Therefore, to achieve this,the user needs to perform three separate print actions. That is, for theabove example, the user has to issue following three print commands—1)print 3 copies of pages 1-4; 2) print 2 copies of page 6; and 3) print 5copies of page 8. Thus, the existing print mechanisms consume more timeand resources for printing variable copies of multiple pages. This posesa serious limitation when the number of pages to be printed is large.

Therefore, it would be advantageous to have a print mechanism thatallows users to print different number of copies of different pages in asingle print action.

The information disclosed in this background of the disclosure sectionis only for enhancement of understanding of the general background ofthe invention and should not be taken as an acknowledgement or any formof suggestion that this information forms the prior art already known toa person skilled in the art.

SUMMARY

Disclosed herein is a method for printing variable copies of a pluralityof pages in a document. The method comprises receiving, by a printerdriver unit, a user input comprising a number of copies of the pluralityof pages to be printed. Further, the method comprises parsing the userinput to determine the plurality of pages to be printed and the numberof copies each of the plurality of pages to be printed. Afterdetermining the plurality of pages and the number of copies, the methodcomprises retrieving, by the printer driver unit, content of each of theplurality of pages determined. Thereafter, the method comprises printingthe determined number of copies of the retrieved content.

Further, the present disclosure relates to a printer driver unit forprinting variable copies of a plurality of pages in a document. Theprinter driver unit is associated with a processor and a memory,communicatively coupled to the processor. The memory storesprocessor-executable instructions, which on execution, cause theprocessor to receive a user input comprising a number of copies of theplurality of pages to be printed. Further, the instructions cause theprocessor to parse the user input to determine the plurality of pages tobe printed and the number of copies each of the plurality of pages to beprinted. Thereafter, the instructions cause the processor to retrievecontent of each of the plurality of pages determined. Finally, theinstructions cause the processor to print the determined number ofcopies of the retrieved content.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the drawings and the followingdetailed description.

DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this disclosure, illustrate exemplary embodiments and, togetherwith the description, explain the disclosed principles. In the figures,the left-most digit(s) of a reference number identifies the figure inwhich the reference number first appears. The same numbers are usedthroughout the figures to reference like features and components. Someembodiments of system and/or methods in accordance with embodiments ofthe present subject matter are now described, by way of example only,and regarding the accompanying figures, in which:

FIG. 1 shows an exemplary environment for printing variable copies of aplurality of pages of a document in accordance with some embodiments ofthe present disclosure.

FIG. 2A shows an exemplary architecture of various components involvedin a printing process in accordance with some embodiments of the presentdisclosure.

FIG. 2B shows a detailed block diagram of a printer driver unit inaccordance with some embodiments of the present disclosure.

FIGS. 3A-3C provide exemplary illustration of a User Interface (UI) usedfor receiving user input in accordance with some embodiments of thepresent disclosure.

FIG. 4 shows a flowchart illustrating a method of printing variablecopies of a plurality of pages of a document in accordance with someembodiments of the present disclosure.

FIG. 5 illustrates a block diagram of an exemplary computer system forimplementing embodiments consistent with the present disclosure.

It should be appreciated by those skilled in the art that any blockdiagrams herein represent conceptual views of illustrative systemsembodying the principles of the present subject matter.

Similarly, it will be appreciated that any flow charts, flow diagrams,state transition diagrams, pseudo code, and the like represent variousprocesses which may be substantially represented in computer readablemedium and executed by a computer or processor, whether such computer orprocessor is explicitly shown.

DETAILED DESCRIPTION

In the present document, the word “exemplary” is used herein to mean“serving as an example, instance, or illustration.” Any embodiment orimplementation of the present subject matter described herein as“exemplary” is not necessarily to be construed as preferred oradvantageous over other embodiments.

While the disclosure is susceptible to various modifications andalternative forms, specific embodiment thereof has been shown by way ofexample in the drawings and will be described in detail below. It shouldbe understood, however that it is not intended to limit the disclosureto the specific forms disclosed, but on the contrary, the disclosure isto cover all modifications, equivalents, and alternative falling withinthe scope of the disclosure.

The terms “comprises”, “comprising”, “includes”, or any other variationsthereof, are intended to cover a non-exclusive inclusion, such that asetup, device, or method that comprises a list of components or stepsdoes not include only those components or steps but may include othercomponents or steps not expressly listed or inherent to such setup ordevice or method. In other words, one or more elements in a system orapparatus proceeded by “comprises . . . a” does not, without moreconstraints, preclude the existence of other elements or additionalelements in the system or method.

The present disclosure relates to a method and a printer driver unit forprinting variable copies of a plurality of pages in a document. In anembodiment, the method of present disclosure provides an option for theusers to input different number of copies of different pages forprinting. That is, according to the present disclosure, the user isallowed to input a ‘string’ that specifies pages and correspondingnumber of copies to be printed. For example, to print three copies ofpages 1-4, 2 copies of page 6, and 5 copies of page 8, the user shallinput the string—1-4*3, 6*2, 8*5.

Thus, the present disclosure allows the user to get the desired numberof copies of each page in a single print action, without the need toissue three print commands separately.

In the following detailed description of the embodiments of thedisclosure, reference is made to the accompanying drawings that form apart hereof, and in which are shown by way of illustration specificembodiments in which the disclosure may be practiced. These embodimentsare described in sufficient detail to enable those skilled in the art topractice the disclosure, and it is to be understood that otherembodiments may be utilized and that changes may be made withoutdeparting from the scope of the present disclosure. The followingdescription is, therefore, not to be taken in a limiting sense.

FIG. 1 shows an exemplary environment 100 for printing variable copiesof a plurality of pages of a document in accordance with someembodiments of the present disclosure.

In an embodiment, the environment 100 may include, without limiting to,a user 101, a printer driver unit 105, and a Multi-Function Printer(MFP) 107. In an embodiment, the user 101 may be an operator of the MFP107. In an embodiment, the printer driver unit 105 may be a computingunit (such as a computer, server, programmed processor) configured witha printer driver application, which is capable of scanning through adocument and converting content/data to be printed into a format that isunderstandable by the MFP 107. In an implementation, the printer driverunit 105 may be a standalone computing unit that may be connected to theMFP 107 as an external plugin. Alternatively, the printer driver unit105 may be configured within the MFP 107. In an implementation, theprinter driver unit 105 may be associated with a User Interface (UI) forreceiving a user input 103 from the user 101. As an example, the UI mayinclude, without limiting to, a display screen, a touchscreen, atouchpad, a keypad, and the like. In an embodiment, when the printerdriver unit 105 is configured within the MFP 107, the printer driverunit 105 may use the UI of the MFP 107 for receiving the user input 103from the user 101.

In an embodiment, the user input 103 may include a string of numeralsthat indicates the plurality of pages to be printed from a document andthe number of copies that each of the plurality of pages need to beprinted.

In an embodiment, the MFP 107 may be a machine designed to performmultiple functionalities including, without limiting to, scanning adocument, photocopying a document, printing a document, and the like.For various embodiments of the present disclosure, the printfunctionality of the MFP 107 may be considered.

In an embodiment, after receiving the user input 103 from the user 101,the printer driver unit 105 may process and/or parse the user input 103to identify the pages to be printed and the number of copies that eachof the pages need to be printed. For example, if the user 101 enters auser input 103 such as “1*4, 5-7*3”, then the printer driver unit 105may process the user input 103 and identify that the user 101 hasselected pages 1 and 5-7 for printing. Additionally, the printer driverunit 105 may identify that the user 101 intends to print 4 copies ofpage 1 and 3 copies of page 5-7.

In an embodiment, after completely parsing the user input 103, theprinter driver unit 105 may pass the parsed information to the MFP 107.Subsequently, the MFP 107 may print the required number of copies ofselected pages onto physical papers (indicated as printed pages 109).Various processes involved in parsing the user input 103 and printingthe variable copies of the selected pages are explained with referenceto FIGS. 2A and 2B in the following paragraphs.

FIG. 2A shows an exemplary architecture of various components involvedin a printing process in accordance with some embodiments of the presentdisclosure.

In an embodiment, as shown in FIG. 2A, the user 101 may use a printerapplication 201 for initiating printing of a document. The printerapplication 201 may be a utility that allows the user 101 to performactions such as, without limiting to, submitting a document forprinting, selecting a printer for printing the document, etc. In animplementation, the printer application 201 may be installed on anexternal computing system used by the user 101, using which the user 101may select the MFP 107 for printing the required pages of the document.

In an embodiment, after receiving the above information from the user101, the printer application 201 may invoke a Graphics Device Interface(GDI) 203. The GDI 203 may be an Application Programming Interface(API), as well as a core operating system associated with the MFP 107.The GDI 203 may be responsible for representing graphicalobjects/contents from the document to be printed and transmit thisinformation to a printing unit 213 of the MFP 107.

In an implementation, the GDI 203 may be operatively interfaced with theprinter driver unit 105. In an embodiment, after the user 101 initiatesthe printing through the printer application 201, the printer driverunit 105 may prompt the user 101 to enter the user input 103 through aDriver User Interface (Driver UI) 209 associated with the printer driverunit 105. At this stage, the user 101 may enter the user input 103 forselecting a plurality of pages to be printed from the document, alongwith an indication of number of copies that each of the plurality ofpages need to be printed. Subsequently, the printer driver unit 105 mayparse the user input 103 and transmit the information related to thepages selected and the number of copies to the GDI 203.

After identifying the pages to be printed and number of copies of eachpage to be printed, the GDI 203 may pass the content to be printed to aclient side print spooler 211. The print spooler 211 may copy thecontent from the GDI 203 and pass it on to the printing unit 213.Thereafter, the printing unit 213 may print the content onto thephysical papers according to the pages and the number of copies of eachpage selected by the user 101.

In an embodiment, the printer driver unit 105 may process the user input103 and pass the selected pages for printing using one of the followingtwo approaches:

Approach 1: Printer driver unit renders each page's data multiple times:

According to this approach, the printer driver unit 105 may be updatedsuch that, the driver UI 209 provides an option to the user 101 to enterthe page selection, for example, as shown in FIG. 3A. Thereafter, theprinter driver unit 105 may parse the input string to identify the pagesto be print and the number of copies of each page. Here, a predeterminedconstraint would be that the user 101 submits ‘all pages’ of thedocument for printing in the printer application 201. Accordingly, foreach page selected by the user 101, the printer driver unit 105 shallcapture the content of the selected page and store it in a temporaryfile 217. Contents of all the other pages, not selected by the user 101,may be skipped. Once the contents of all the selected pages are copiedto the temporary file 217, the printer driver unit 105 may read eachpage's content from the temporary file 217 and send it to the printingunit 213 (through the print spooler 211) as many times as selected bythe user 101. That is, if the user 101 needs ‘three’ copies of aparticular page, then the printer driver unit 105 may send the contentof that page to the printing unit 213 ‘three’ times.

Approach 2: Using a Printer Job Language (PJL) command to handlemultiple copies:

According to this approach, certain changes may be made in the printerdriver unit 105 and as well as the printing unit 213 (or the MFP 107).In the existing scenario, the PJL command corresponding to selection ofnumber of copies applies to all the pages in the document. Therefore, anew PJL command format may be identified, which helps in selectingdifferent copies of different pages for printing. Also, the printingunit 213 or the MFP 107 may be modified to understand the new PJLcommand. Accordingly, in this scenario, instead of sending the contentsmultiple times, the printer driver unit 105 may directly send the newPJL command, indicating the selected pages and the number copies of eachselected page, to the printing unit 213. Thereafter, the printing unit213 may interpret the PJL command issued by the printer driver unit 105and print the specified number of copies of each page selected by theuser 101.

In an embodiment, a predetermined condition for both of these approachesis that the printer application 201 needs to send the whole document(i.e., all the pages of the document) to the GDI 203. Since the pageselections done by the user 101 in the UI of the printer application 201are not communicated to the printer driver unit 105, the user 101 needsto select ‘all pages’ in the printer application 201 UI, so that thecontent of the entire document could be fetched by the printer driverunit 105, for subsequently rendering the content as required by the user101.

FIG. 2B shows a detailed block diagram of a printer driver unit 105 inaccordance with some embodiments of the present disclosure.

In some implementations, the printer driver unit 105 may include aprocessor 205, a memory 207 and a Driver User Interface (UI) 209. In anembodiment, the processor 205 may be configured to perform one or morefunctions of the printer driver unit 105 for printing variable copies ofa plurality of pages in a document, using the data 215 and the one ormore modules 221 associated with the printer driver unit 105. The memory207 may be communicatively coupled to the processor 205 and may storethe data 215 and the one or more modules 221. The driver UI 209 may beused for receiving a user input 103 from the user 101.

In an embodiment, the data 215 stored in the memory 207 may include,without limitation, the user input 103 received from the user 101, atemporary file 217 and other data 219. In some implementations, the data215 may be stored within the memory 207 in the form of various datastructures. Additionally, the data 215 may be organized using datamodels, such as relational or hierarchical data models. The other data219 may include various temporary data and files generated by the one ormore modules 221 while performing various functions of the printerdriver unit 105. As an example, the other data 219 may include, withoutlimitation, temporarily stored user input 103 and buffer informationgenerated while printing the document.

In an embodiment, the user input 103 may be a numeric string entered bythe user 101. The user input 103 indicates the pages selected by theuser 101 for printing and the number of copies of each selected page.The user input 103 may be received through a driver UI 209 associatedwith the printer driver unit 105.

In an embodiment, the temporary file 217 may be used for temporarilystoring contents/data of the pages selected by the user 101 forprinting. The temporary file 217 may be managed by the printer driverunit 105 where the printer driver unit 105 uses the temporary file 217as a buffer memory to store the contents of the selected pages beforepassing it to the print spooler 211 or the printing unit 213.

In an embodiment, the data 215 may be processed by the one or moremodules 221 of the printer driver unit 105. In some implementations, theone or more modules 221 may be a hardware unit communicatively coupledto the processor 205 for performing one or more functions of the printerdriver unit 105. In an implementation, the one or more modules 221 mayinclude, without limiting to, a receiving module 223, an input parser225, a page retrieval module 227 and other modules 229.

As used herein, the term module may refer to an Application SpecificIntegrated Circuit (ASIC), an electronic circuit, a hardware processor(shared, dedicated, or group) and memory that execute one or moresoftware or firmware programs, a combinational logic circuit, and/orother suitable components that provide the described functionality. Inan implementation, each of the one or more modules 221 may be configuredas stand-alone hardware computing units. In an embodiment, the othermodules 229 may be used to perform various miscellaneous functionalitiesof the printer driver unit 105. It will be appreciated that such one ormore modules 221 may be represented as a single module or a combinationof different modules.

In an embodiment, the receiving module 223 may be configured forreceiving the user input 103 from the user 101 through the driver UI 209associated with the printer driver unit 105. In an embodiment, the inputparser 225 may be configured for parsing/processing the user input 103received from the user 101 and identify the pages to be printed andnumber of copies of each page to be printed. The page retrieval module227 may be configured for retrieving the content/data of each of thepages selected for printing, from a digital document which is submittedby the user 101.

FIGS. 3A-3C provide exemplary illustration of a User Interface (UI) usedfor receiving user input 103 in accordance with some embodiments of thepresent disclosure.

FIG. 3A shows an exemplary UI provided to the user 101, using which theuser 101 may enter the user input 103 to the printer driver unit 105. Asshown in the UI, the user input 103 may be a string of numeralscorresponding to pages of a document to be printed. For example, if adocument comprises 10 pages and the user 101 intends to print threecopies of page 1 and two copies of pages 4-7, then the user 101 mayenter the string “1*3; 4-7*2” on the text field provided in the UI. Inan embodiment, each page and the number of copies of each page may beseparated by operators such as, without limitation, a comma (“,”), asemi-colon (“;”), and the like, as per preferences of the user 101.

In an embodiment, after entering the user input 103, if the user 101intends to modify the already entered user input 103, “CHANGE SELECTION”option may be chosen on the UI. Otherwise, the “PRINT” option may beused to send the user input 103 to the parser driver unit for furtherprocessing.

FIGS. 3B and 3C illustrate exemplary variations in the user input 103entered by the user 101. As an example, when the user 101 intends toprint only a single copy of all the selected pages, then the user 101may simply enter the page numbers to be selected for printing as shownin FIG. 3B. That is, it may not be necessary to indicate the number ofcopies to be printed, when only a single copy of all the pages is to beprinted. Similarly, when a single copy of all 10 pages of the documentneeds to be printed, the user 101 may simply enter the user input 103 as‘1-10’, as shown in FIG. 3C. Thus, the proposed method allows the user101 to print variable copies of a plurality of pages in an easy andconvenient manner.

FIG. 4 shows a flowchart illustrating a method of printing variablecopies of a plurality of pages of a document in accordance with someembodiments of the present disclosure.

As illustrated in FIG. 4 , a method 400 may include one or more blocksillustrating a method for printing variable copies of a plurality ofpages from a document using a printer driver unit 105 illustrated inFIG. 1 . The method 400 may be described in the general context ofcomputer executable instructions. Generally, computer executableinstructions can include routines, programs, objects, components, datastructures, procedures, modules, and functions, which perform specificfunctions or implement specific abstract data types.

The order in which the method 400 is described is not intended to beconstrued as a limitation, and any number of the described method blockscan be combined in any order to implement the method. Additionally,individual blocks may be deleted from the methods without departing fromthe scope of the subject matter described herein. Furthermore, themethod can be implemented in any suitable hardware, software, firmware,or combination thereof.

At block 401, the method 400 includes receiving, by the printer driverunit 105, a user input 103 from a user 101 of a printer or aMulti-Function Printer (MFP) 107 associated with the printer driver unit105. In an embodiment, the user input 103 may indicate a plurality ofpages to be printed from the document and a number of copies that eachof the plurality of pages to be printed. In an implementation, the userinput 103 may be received through a driver UI 209 associated with theprinter driver unit 105.

At block 403, the method 400 includes parsing, by the printer driverunit 105, the user input 103 to determine the plurality of pages to beprinted and the number of copies each of the plurality of pages to beprinted.

At block 405, the method 400 includes retrieving, by the printer driverunit 105, content of each of the plurality of pages determined from theuser input 103 from a digital file and/or a storage of an externalcomputer connected to the printer driver unit 105. After retrieval, thecontent of each of the plurality of pages may be temporarily stored in amemory of the printer driver unit 105.

At block 407, the method 400 includes printing, by the printer driverunit 105, the determined number of copies of the retrieved content. Inan embodiment, printing the required number of copies may comprisetransmitting, for a number of times equivalent to the determined numberof copies, the stored content into a spooler associated with the printerdriver unit 105 for printing.

Computer System

FIG. 5 illustrates a block diagram of an exemplary computer system 500for implementing embodiments consistent with the present disclosure. Inan embodiment, the computer system 500 may be the printer driver unit105 illustrated in FIG. 1 , which may be used for printing variablecopies of a plurality of pages from a document. In an alternativeembodiment, the computer system may be a Multi-Function Printer (MFP)107 configured with the printer driver unit 105. The computer system 500may include a central processing unit (“CPU” or “processor”) 502. Theprocessor 502 may comprise at least one data processor for executingprogram components for executing user- or system-generated businessprocesses. A user 101 may include any person, application or tool thatdirectly or indirectly operates the computer system 500. The processor502 may include specialized processing units such as integrated system(bus) controllers, memory management control units, floating pointunits, graphics processing units, digital signal processing units, etc.

The processor 502 may be disposed in communication with one or moreInput/Output (I/O) devices (511 and 512) via I/O interface 501. The I/Ointerface 501 may employ communication protocols/methods such as,without limitation, audio, analog, digital, stereo, IEEE®-1394, serialbus, Universal Serial Bus (USB), infrared, PS/2, BNC, coaxial,component, composite, Digital Visual Interface (DVI), high-definitionmultimedia interface (HDMI), Radio Frequency (RF) antennas, S-Video,Video Graphics Array (VGA), IEEE® 802.n/b/g/n/x, Bluetooth, cellular(e.g., Code-Division Multiple Access (CDMA), High-Speed Packet Access(HSPA+), Global System For Mobile Communications (GSM), Long-TermEvolution (LTE) or the like), etc. Using the I/O interface 501, thecomputer system 500 may communicate with one or more I/O devices 511 and512.

In some embodiments, the processor 502 may be disposed in communicationwith a communication network 509 via a network interface 503. Thenetwork interface 503 may communicate with the communication network509. The network interface 503 may employ connection protocolsincluding, without limitation, direct connect, Ethernet (e.g., twistedpair 10/100/1000 Base T), Transmission Control Protocol/InternetProtocol (TCP/IP), token ring, IEEE® 802.11a/b/g/n/x, etc. Using thenetwork interface 503 and the communication network 509, the computersystem 500 may connect with the MFP 107 and/or any other computingdevice associated with the user 101 for receiving the user input 103and/or for transmitting the content of pages selected for printing.

In an implementation, the communication network 509 may be implementedas one of the several types of networks, such as intranet or Local AreaNetwork (LAN) and such within the organization. The communicationnetwork 509 may either be a dedicated network or a shared network, whichrepresents an association of several types of networks that use avariety of protocols, for example, Hypertext Transfer Protocol (HTTP),Transmission Control Protocol/Internet Protocol (TCP/IP), WirelessApplication Protocol (WAP), etc., to communicate with each other.Further, the communication network 509 may include a variety of networkdevices, including routers, bridges, servers, computing devices, storagedevices, etc.

In some embodiments, the processor 502 may be disposed in communicationwith a memory 505 (e.g., RAM 513, ROM 514, etc. as shown in FIG. 5 ) viaa storage interface 504. The storage interface 504 may connect to memory505 including, without limitation, memory drives, removable disc drives,etc., employing connection protocols such as Serial Advanced TechnologyAttachment (SATA), Integrated Drive Electronics (IDE), IEEE-1394,Universal Serial Bus (USB), fiber channel, Small Computer SystemsInterface (SCSI), etc. The memory drives may further include a drum,magnetic disc drive, magneto-optical drive, optical drive, RedundantArray of Independent Discs (RAID), solid-state memory devices,solid-state drives, etc.

The memory 505 may store a collection of program or database components,including, without limitation, user/application interface 506, anoperating system 507, a web browser 508, and the like. In someembodiments, computer system 500 may store user/application data 506,such as the data, variables, records, etc. as described in thisinvention. Such databases may be implemented as fault-tolerant,relational, scalable, secure databases such as Oracle® or Sybase®.

The operating system 507 may facilitate resource management andoperation of the computer system 500. Examples of operating systemsinclude, without limitation, APPLE® MACINTOSH® OS X®, UNIX®, UNIX-likesystem distributions (E.G., BERKELEY SOFTWARE DISTRIBUTION® (BSD),FREEBSD®, NETBSD®, OPENBSD, etc.), LINUX® DISTRIBUTIONS (E.G., RED HAT®,UBUNTU®, KUBUNTU®, etc.), IBM® OS/2®, MICROSOFT® WINDOWS® (XP®,VISTA®/7/8, 10 etc.), APPLE® IOS®, GOOGLE™ ANDROID™, BLACKBERRY® OS, orthe like.

The user interface 506 may facilitate display, execution, interaction,manipulation, or operation of program components through textual orgraphical facilities. For example, the user interface 506 may providecomputer interaction interface elements on a display system operativelyconnected to the computer system 500, such as cursors, icons, checkboxes, menus, scrollers, windows, widgets, and the like. Further,Graphical User Interfaces (GUIs) may be employed, including, withoutlimitation, APPLE® MACINTOSH® operating systems' Aqua®, IBM® OS/2®,MICROSOFT® WINDOWS® (e.g., Aero, Metro, etc.), web interface libraries(e.g., ActiveX®, JAVA®, JAVASCRIPT®, AJAX, HTML, ADOBE® FLASH®, etc.),or the like.

The web browser 508 may be a hypertext viewing application. Secure webbrowsing may be provided using Secure Hypertext Transport Protocol(HTTPS), Secure Sockets Layer (SSL), Transport Layer Security (TLS), andthe like. The web browsers 508 may utilize facilities such as AJAX,DHTML, ADOBE® FLASH®, JAVASCRIPT®, JAVA®, Application ProgrammingInterfaces (APIs), and the like. Further, the computer system 500 mayimplement a mail server stored program component. The mail server mayutilize facilities such as ASP, ACTIVEX®, ANSI® C++/C#, MICROSOFT®,.NET, CGI SCRIPTS, JAVA®, JAVASCRIPT®, PERL®, PHP, PYTHON®, WEBOBJECTS®,etc. The mail server may utilize communication protocols such asInternet Message Access Protocol (IMAP), Messaging ApplicationProgramming Interface (MAPI), MICROSOFT® exchange, Post Office Protocol(POP), Simple Mail Transfer Protocol (SMTP), or the like. In someembodiments, the computer system 500 may implement a mail client storedprogram component. The mail client may be a mail viewing application,such as APPLE® MAIL, MICROSOFT® ENTOURAGE®, MICROSOFT® OUTLOOK®,MOZILLA® THUNDERBIRD®, and the like.

Furthermore, one or more computer-readable storage media may be utilizedin implementing embodiments consistent with the present invention. Acomputer-readable storage medium refers to any type of physical memoryon which information or data readable by a processor may be stored.Thus, a computer-readable storage medium may store instructions forexecution by one or more processors, including instructions for causingthe processor(s) to perform steps or stages consistent with theembodiments described herein. The term “computer-readable medium” shouldbe understood to include tangible items and exclude carrier waves andtransient signals, i.e., non-transitory. Examples include Random AccessMemory (RAM), Read-Only Memory (ROM), volatile memory, nonvolatilememory, hard drives, Compact Disc (CD) ROMs, Digital Video Disc (DVDs),flash drives, disks, and any other known physical storage media.

Advantages of the embodiments of the present disclosure are illustratedherein.

In an embodiment, the present disclosure provides a method and/ormechanism that allows users to print different number of copies of aplurality of selected pages on a ‘single’ print action.

In an embodiment, by allowing printing of variable copies of the pagesin a single ‘print’ action, the present disclosure ensures that theusers need not issue multiple/repetitive print commands. This, in turn,helps in enhancing speed of printing. Also, since the number of printcommands is reduced, the present disclosure ensures optimal usage ofresources (such a printer time, electricity etc.).

In an embodiment, the present disclosure enhances overall userexperience with printing, since the users are allowed to customize thenumber of copies that the multiple pages are required to be printed.

In light of the technical advancements provided by the disclosed methodand the printer driver unit, the claimed steps, as discussed above, arenot routine, conventional, or well-known aspects in the art, as theclaimed steps provide the aforesaid solutions to the technical problemsexisting in the conventional technologies. Further, the claimed stepsclearly bring an improvement in the functioning of the MFPs, printersand/or other related devices, as the claimed steps provide a technicalsolution to a technical problem.

The terms “an embodiment”, “embodiment”, “embodiments”, “theembodiment”, “the embodiments”, “one or more embodiments”, “someembodiments”, and “one embodiment” mean “one or more (but not all)embodiments of the invention(s)” unless expressly specified otherwise.

The terms “including”, “comprising”, “having” and variations thereofmean “including but not limited to”, unless expressly specifiedotherwise.

The enumerated listing of items does not imply that any or all the itemsare mutually exclusive, unless expressly specified otherwise. The terms“a”, “an” and “the” mean “one or more”, unless expressly specifiedotherwise.

A description of an embodiment with several components in communicationwith each other does not imply that all such components are required. Onthe contrary, a variety of optional components are described toillustrate the wide variety of possible embodiments of the invention.

When a single device or article is described herein, it will be clearthat more than one device/article (whether they cooperate) may be usedin place of a single device/article. Similarly, where more than onedevice/article is described herein (whether they cooperate), it will beclear that a single device/article may be used in place of the more thanone device/article or a different number of devices/articles may be usedinstead of the shown number of devices or programs. The functionalityand/or features of a device may be alternatively embodied by one or moreother devices which are not explicitly described as having suchfunctionality/features. Thus, other embodiments of invention need notinclude the device itself.

Finally, the language used in the specification has been principallyselected for readability and instructional purposes, and it may not havebeen selected to delineate or circumscribe the inventive subject matter.It is therefore intended that the scope of the invention be limited notby this detailed description, but rather by any claims that issue on anapplication based here on.

Accordingly, the embodiments of the present invention are intended to beillustrative, but not limiting, of the scope of the invention, which isset forth in the following claims.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are for purposes ofillustration and are not intended to be limiting, with the true scopeand spirit being indicated by the following claims.

REFERRAL NUMERALS

Reference Number Description 100 Environment 101 User 103 User input 105Printer driver unit 107 Multi-Function Printer (MFP) 109 Printed pages201 Printer application 203 Graphics Device Interface 205 Processor 207Memory 209 Driver User Interface 211 Print spooler 213 Printing unit 215Data 217 Temporary file 219 Other data 221 Modules 223 Receiving module225 Input parser 227 Page retrieval module 229 Other modules 500Exemplary computer system 501 I/O Interface of the exemplary computersystem 502 Processor of the exemplary computer system 503 Networkinterface 504 Storage interface 505 Memory of the exemplary computersystem 506 User/Application 507 Operating system 508 Web browser 509Communication network 511 Input devices 512 Output devices 513 RAM 514ROM

What is claimed is:
 1. A method for printing variable copies of aplurality of pages in a document, the method comprising: receiving, by aprinter driver, a user input comprising a number of copies of theplurality of pages to be printed; analyzing, by the printer driver, theuser input to determine the plurality of pages to be printed and thenumber of copies each of the plurality of pages to be printed;retrieving, by the printer driver, content of each of the plurality ofpages determined; and printing, by the printer driver, the determinednumber of copies of the retrieved content.
 2. The method of claim 1,wherein the printer driver is configured in a printer.
 3. The method ofclaim 1, wherein the user input is received through a user interfaceassociated with the printer driver.
 4. The method of claim 1, whereinthe user input is a string of numerals.
 5. The method of claim 1,wherein the printing further comprises: storing the content of each ofthe plurality of pages determined in a temporary file associated with aprinter; and transmitting, for a number of times equivalent to thedetermined number of copies, the content stored in the temporary filefor printing.
 6. A method for printing a variable number of copies ofpages in a document, the method comprising: receiving, by one or moreprocessors, a user command including (i) a first page subset selectionidentifying (a) one or more first pages of the document and (b) a firstnumber of copies of the one or more first pages to be printed and (ii) asecond page subset selection identifying (a) one or more second pages ofthe document different than the one or more first pages and (b) a secondnumber of copies of the one or more second pages to be printed;acquiring, by the one or more processors, content regarding the one ormore first pages and the one or more second pages of the document; andinstructing, by the one or more processors, a printer to print thecontent such that the first number of copies of the one or more firstpages of the document are printed and the second number of copies of theone or more second pages of the document are printed in a singleprinting process in response to the user command.
 7. The method of claim6, wherein the one or more processors are part of the printer.
 8. Themethod of claim 6, wherein the one or more processors are part of acomputing device external from the printer.
 9. The method of claim 6,wherein the one or more processors include at least one processor in thecomputing device and at least one other processor in the printer. 10.The method of claim 6, wherein the user command includes a string ofnumerals, and wherein the string of numerals includes (i) a first pagerange representing the one or more first pages modified by a firstnumber representing the first number of copies and (ii) a second pagerange representing the one or more second pages modified by a secondnumber representing the second number of copies.
 11. A printer drivercomprising: a processor; and a memory communicatively coupled to theprocessor, wherein the memory is configured to storeprocessor-executable instructions, which on execution, cause theprocessor to: receive a user command including (i) a first page subsetselection identifying (a) one or more first pages of the document and(b) a first number of copies of the one or more first pages to beprinted and (ii) a second page subset selection identifying (a) one ormore second pages of the document different than the one or more firstpages and (b) a second number of copies of the one or more second pagesto be printed; acquire content regarding the one or more first pages andthe one or more second pages of the document; and instruct printing ofthe content such that the first number of copies of the one or morefirst pages of the document are printed and the second number of copiesof the one or more second pages of the document are printed in a singleprinting process in response to the user command.
 12. The printer driverof claim 11, wherein the printer driver is configured in a printer. 13.The printer driver of claim 11, further comprising a user interface forreceiving the user command.
 14. The printer driver of claim 11, whereinthe user command is a string of numerals.
 15. The printer driver ofclaim 14, wherein the string of numerals includes (i) a first page rangerepresenting the one or more first pages modified by a first numberrepresenting the first number of copies and (ii) a second page rangerepresenting the one or more second pages modified by a second numberrepresenting the second number of copies.
 16. The printer driver ofclaim 11, wherein the memory is further configured to storeprocessor-executable instructions, which on execution, cause theprocessor to: store the content in a temporary file associated with aprinter; and transmit the content associated with the one or more firstpages and the one or more second pages stored in the temporary to theprinter for a number of times equivalent to the first number of copiesand the second number of copies, respectively.